
function MyNew(constructor, ...args) {
  let obj = Object.create(constructor.prototype);

  const result = constructor.apply(obj, args);

  return (result !== null && typeof result === 'object')? result: obj;
  
}

function Person(name) {
  this.name = name;
}

let daxia = MyNew(Person, 'daxia');
console.log(daxia, daxia.__proto__.__proto__);
